﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace IURIP
{
    /// <summary>
    /// The TargetRelationship interface
    /// </summary>
    public interface ITargetRelationship
    {
        /// <summary>
        /// Gets the task of this target relationship
        /// </summary>
        ITask Task { get; }
        /// <summary>
        /// Gets the related target in the relationship
        /// </summary>
        ITarget RelatedTarget { get;}
        /// <summary>
        /// Gets the original target reference
        /// </summary>
        ITarget OriginalTarget { get; }
        /// <summary>
        /// Gets the condition between the parent and child target
        /// </summary>
        IFilter Condition { get;}
        /// <summary>
        /// Gets the relationship's reference list name 
        /// </summary>
        string ListXPath { get; }

        /// <summary>
        /// Initialize the target relationship from configuration file
        /// </summary>
        /// <param name="node"></param>
        void InitByConfiguration(XmlNode node);
    }
}
